// 导入数据库操作对象
const db = require('../db/index')

// 获取整体文章分类
exports.getCates = (req, res) => {
    // sql查询未被删除的数据
    const selectStr = 'select * from ev_article_cate where is_delete=0 order by id asc'
    db.query(selectStr, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取文章列表数据成功',
            data: results
        })
    })
}

// 根据id获取某个文章分类
exports.getCatesId = (req, res) => {
    const selectStr = 'select * from ev_article_cate where id =?'
    db.query(selectStr, req.params.id, (err, results) => {
        if (err) return res.cc(err)
        if (results.length !== 1) return res.cc('查询失败')

        res.send({
            status: 0,
            message: '查询成功',
            data: results[0]
        })
    })
}

// 根据id更新某个文章分类
exports.upCateById = (req, res) => {
    // 先查询更改的数据是否被占用
    const selectStr = 'select * from ev_article_cate where id<>? and (name=? or ailas=?)'
    db.query(selectStr, [req.body.id, req.body.name, req.body.ailas], (err, results) => {
        if (err) return res.cc(err)

        if (results.length === 2) return res.cc('分类名称与别名被占用，请更换后重试！')
        if (results.length === 1 && results[0].name === req.body.name && results[0].ailas === req.body.ailas) 
        return res.cc('分类名称与别名被占用，请更换后重试！')
        if (results.length === 1 && results[0].name === req.body.name) 
        return res.cc('分类名称被占用，请更换后重试！')
        if (results.length === 1 && results[0].ailas === req.body.ailas) 
        return res.cc('分类别名被占用，请更换后重试！')

        // 无占用 进行更新
        const upStr = 'update ev_article_cate set ? where id=?'
        db.query(upStr,[req.body,req.body.id],(err,results)=>{
            if (err) return res.cc(err)
            if(results.affectedRows !==1) return res.cc('更新失败')
            res.cc('更新成功',0)
        })
    })
}

// 新增文章分类
exports.addCates = (req, res) => {
    // 查询新建名字 或则别名 分类是否存在
    const selectStr = 'select * from ev_article_cate where name=? or ailas=?'
    db.query(selectStr, [req.body.name, req.body.ailas], (err, results) => {
        if (err) return res.cc(err)
        // 开始判断
        if (results.length === 2) return res.cc('名称与别名都被占用')
        if (results.length === 1 && results[0].name === req.body.name && results[0].ailas === req.body.ailas)
            return res.cc('名称与别名都被占用')

        if (results.length === 1 && results[0].name === req.body.name)
            return res.cc('分类名称被占用')
        if (results.length === 1 && results[0].ailas === req.body.ailas)
            return res.cc('分类别名被占用')

        //name与alias 无重复进行添加
        const inertStr = 'insert into ev_article_cate set ?'
        db.query(inertStr, req.body, (err, results) => {
            if (err) return res.cc(err)
            if (results.affectedRows !== 1) return res.cc('新增失败')

            res.cc('新增成功', 0)
        })
    })
}

// 根据文章id删除文章 标记删除
exports.delCate = (req, res) => {
    // sql语句
    const upStr = 'update ev_article_cate set is_delete=1 where id=?'
    db.query(upStr, req.params.id, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('文章列表删除失败')

        res.cc('文章列表删除成功', 0)
    })
}